package com.cskaoyan.mapper.marketMapper;

import com.cskaoyan.bean.bo.Goods_list;
import com.cskaoyan.bean.marketBean.*;
import com.cskaoyan.bean.po.GoodsCountGroupByBrandId;
import com.cskaoyan.bean.vo.WxglMallManagementControllerVo.GoodsDtoVo;
import com.cskaoyan.bean.po.example.WXGoodsListExamplePO;
import com.cskaoyan.bean.vo.zxw.StatGoodsRowsVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MarketGoodsMapper {


    int delete_zyl_goods(Integer id);

    int delete_zyl_goods_product(Integer id);

    int delete_zyl_goods_specification(Integer id);

    int delete_zyl_goods_attribbute(Integer id);

    long countByExample(MarketGoodsExample example);

    int deleteByExample(MarketGoodsExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(MarketGoods record);

    int insertSelective(MarketGoods record);

    List<MarketGoods> list(Goods_list list);

    List<MarketGoods> selectByExampleWithBLOBs(MarketGoodsExample example);

    List<MarketGoods> selectByExample(MarketGoodsExample example);

    MarketGoods selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") MarketGoods record, @Param("example") MarketGoodsExample example);

    int updateByExampleWithBLOBs(@Param("record") MarketGoods record, @Param("example") MarketGoodsExample example);

    int updateByExample(@Param("record") MarketGoods record, @Param("example") MarketGoodsExample example);

    int updateByPrimaryKeySelective(MarketGoods record);

    int updateByPrimaryKeyWithBLOBs(MarketGoods record);

    int updateByPrimaryKey(MarketGoods record);

    List<StatGoodsRowsVo> selectGoodsStatGroupByAddTime();

    Integer selectGoodsCount();

    List<MarketGoods> selectMarketGoodsByCategoryId(Integer categoryId);

    List<GoodsDtoVo> selectInfoById(Integer[] goods);

    List<MarketGoods> selectHotMarketGoodsByCategoryId(@Param("goods") MarketGoods marketGoods);

    List<MarketGoods> selectMarketGoodsByCategoryId(@Param("goods") MarketGoods marketGoods);

    MarketGoods selectGoodsById(@Param("goods") MarketGoods goods);

    List<MarketGoods> selectGoodsLikeByName(@Param("goodsListExamplePO") WXGoodsListExamplePO goodsListExamplePO);

    List<GoodsCountGroupByBrandId> selectGoodsCountBrandOrderByCount();

    List<MarketGoods> selectMarketGoodsByCategoryIdLimit(@Param("categoryId") Integer categoryId,@Param("limit") Integer limit);

    List<MarketGoods> selectHotMarketGoodsLimit(Integer limit);

    List<MarketGoods> selectNewMarketGoodsLimit(Integer limit);

    void insertFootPrint(MarketFootprint marketFootprint);

}
